#pragma once
#include "..\GameEngine\GameEngine.h"

class Player : public TGameObject, public ICollidable, public IInteractive
{
    TGDKSprite *spr;    
    int m_Damage;
    RECT m_Rect;
    Timer m_Bullet;        
    int m_Life;
    BOOL m_bInGame;
    CParticleSystem pBackFire;
protected:
    int m_iSpeed;
    int m_iAngle;
public:    
    Player(string res_name, int x, int y);
    virtual ~Player();

    BOOL Turn(int angle);

    BOOL Move(int speed);

    BOOL Stop();

    void TakeDamage(int dmg);

    BOOL Respawn(WORD& x, WORD& y);    
    
    BOOL Fire();

    BOOL InGame();

    virtual bool HasEffects();

    virtual vector<Effect>& GetEffects();

    virtual void OnDraw();

    virtual void OnClick( int x, int y );

    virtual RECT* GetRect();

    virtual void GetCollision( TGameObject *obj );

    virtual void DoAction();

    virtual TGDKSprite* GetMainSprite();

    virtual float GetCurrentSpeed();

};